
import libnum
import uuid
import gmpy2

flag = "flag{" + str(uuid.uuid4()) + "}"
m=libnum.s2n(flag)
d=libnum.generate_prime(20)
p=libnum.generate_prime(512)
q=libnum.generate_prime(512)
n1=p*q
phi1=(p-1)*(q-1)
e1=libnum.invmod(d,phi1)
p=libnum.generate_prime(512)
q=libnum.generate_prime(512)
n2=p*q
phi2=(p-1)*(q-1)
e2=libnum.invmod(d,phi2)
p=libnum.generate_prime(512)
q=libnum.generate_prime(512)
n3=p*q
phi3=(p-1)*(q-1)
e3=libnum.invmod(d,phi3)

c1=pow(m,e1,n1)
c2=pow(m,e2,n2)
c3=pow(m,e3,n3)
print("n1=",n1)
print("e1=",e1)
print("c1=",c1)

print("n2=",n2)
print("e2=",e2)
print("c2=",c2)

print("n3=",n3)
print("e3=",e3)
print("c3=",c3)

n1= 142043734803438464771001534625156019039023636923222622598468634535315931912828062638410758210172047671777134072446241598328024632832150261284459597317814800747048693430878670761128566740298127682293915658354790750379363466887682091812676543257624766800827504636545347345538123931405258299298926081754412768309
e1= 118747867957774519829839234426138439322888639373025073045624931899809511467648688152640724353767655315130177727513288258291956754084360185442674572034751644741789011273783374628799241719251252535285546996954789988153216569658464256257745896096563915964964026311778550807519901427663736089971879939566182464721
c1= 137824642556862134644455407545896933871025447459118959743573560879661827938480962905195634340240101275436817701440957038658875530017681941665760314667245241315793310174522592152111256582212546027147138609107997567509224362225952294533853934287376187302921673140691649963042242871762007975573220110383584688127
n2= 102176166242185563978252636582266506649664475469695489408296293041437248805904195355454165795875423320087950487603447950180903707652013930266195569514383179370881866040286475294937384255216709347575520330472559567493367189600152445460443479292139163995136977095071217271062594435592581600149146824870516998781
e2= 31795983772717071104727604271958394189176351511105150124176178973917052969776507437640047644381676729620585563040876701688343059662089863781408916459968785373075660354529059267242482316663031143304539983002164416877809127512219676249105007332563118132388609334201250578006286981936132589484252970244476433789
c2= 99037102715369755560551937018932388362531802922104768355951532058803396115038386040501007301123177838154320438257451099249150708227928613602427372840705118151816411298669097237928635450356964331655123109413650803136596968048165226394981306439381007638964754076345519477938994927550593769340829456094260701337
n3= 75406573283191554049917673710286190461029247151694179891875519481858467922722418201643878525127179935248640293462335992439313883002342458659498906258695728898177162783339995251084951075241146924673917672720757560486543394933717138654651462201557041731059072078452626082064205906200158521650634969200577208479
e3= 2189299076545320062014703878502502938558856304568030701393336463006348609555641822400820920023110066456187769685300093094653953314492760019680797777433019516727572191367769540368710466490352831626318342344690024155584914140149226604924140795178549614744125163002765604221594018851390643883404275367932842545
c3= 74844072092566737654065818755998731930699160697713906696560831080650762867721089871893573482674993424810112265259618018746608481399234390854293818446140609005643947373291603495255514928857502064094172034273470327752628720272374596388251644390718511571052087690319218239676443085189950607762198741709853343093
